/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.financial.entity.billnegotiated;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.base.entity.cars.Tcar;
import com.jeesite.modules.base.entity.customer.Customer;
import com.jeesite.modules.base.entity.supplier.Supplier;
import com.jeesite.modules.financial.entity.lettercredit.LetterCredit;
import com.jeesite.modules.order.entity.serviceorder.RelatedRecord;
import com.jeesite.modules.order.entity.serviceorder.ServiceOrder;
import com.jeesite.modules.order.entity.serviceorder.ServiceOrderDetail;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

/**
 * 到单押汇Entity
 * @author Kilo
 * @version 2021-03-10
 */
@Table(name="t_bill_negotiated", alias="a", columns={
		@Column(name="bill_negotiated_id", attrName="billNegotiatedId", label="到单押汇ID", isPK=true),
		@Column(name="frame_number", attrName="frameNumber", label="车架号"),
		@Column(name="brand", attrName="brand", label="品牌"),
		@Column(name="area", attrName="area", label="版型"),
		@Column(name="model", attrName="model", label="车型"),
		@Column(name="unit_price", attrName="unitPrice", label="价格", comment="价格（原币种）", isQuery=false),
		@Column(name="currency", attrName="currency", label="币种"),
		@Column(name="status1", attrName="status1", label="状态"),
		@Column(name="bill_negotiated_code", attrName="billNegotiatedCode", label="编号"),
		@Column(name="letter_credit_code", attrName="letterCreditCode", label="信用证"),
		@Column(name="service_order_code", attrName="serviceOrderCode", label="服务订单"),
		@Column(name="entrust_agreement", attrName="entrustAgreement", label="委托协议"),
		@Column(name="customer_id", attrName="customer.customerId", label="客户"),
		@Column(name="investor_id", attrName="investorId", label="资方"),
		@Column(name="foreign_trade_contract_number", attrName="foreignTradeContractNumber", label="外贸合同号"),
		@Column(name="margin_purchase_exchange_rate", attrName="marginPurchaseExchangeRate", label="保证金购汇汇率", isQuery=false),
		@Column(name="negotiated_ratio", attrName="negotiatedRatio", label="押汇比例", isQuery=false),
		@Column(name="negotiated_amount", attrName="negotiatedAmount", label="押汇金额", isQuery=false),
		@Column(name="start_date", attrName="startDate", label="开始日期"),
		@Column(name="investor_end_date", attrName="investorEndDate", label="资方结束日期"),
		@Column(name="customer_end_date", attrName="customerEndDate", label="客户结束日期"),
		@Column(name="amount", attrName="amount", label="押汇期应还款金额", isQuery=false),
		@Column(name="n1_flag", attrName="n1Flag", label="是否N+1"),
		@Column(name="investor_negotiated_interest", attrName="investorNegotiatedInterest", label="资方押汇利息", isQuery=false),
		@Column(name="customer_negotiated_interest", attrName="customerNegotiatedInterest", label="客户押汇利息", isQuery=false),
		@Column(name="investor_total_principal_interest", attrName="investorTotalPrincipalInterest", label="资方本息合计", isQuery=false),
		@Column(name="customer_total_principal_interest", attrName="customerTotalPrincipalInterest", label="客户本息合计", isQuery=false),
		@Column(name="investor_actual_repayment_date", attrName="investorActualRepaymentDate", label="实际还汇日期"),
		@Column(name="investor_real_exchange_rate", attrName="investorRealExchangeRate", label="实际汇率", isQuery=false),
		@Column(name="investor_estimated_exchange_rate", attrName="investorEstimatedExchangeRate", label="预估汇率", isQuery=false),
		@Column(name="investor_estimated_price", attrName="investorEstimatedPrice", label="预估价格", comment="预估价格（RMB）", isQuery=false),
		@Column(name="investor_payable_id", attrName="investorPayableId", label="还汇应付单", isQuery=false),
		@Column(name="customer_actual_repayment_date", attrName="customerActualRepaymentDate", label="实际还汇日期"),
		@Column(name="customer_real_exchange_rate", attrName="customerRealExchangeRate", label="实际汇率", isQuery=false),
		@Column(name="customer_estimated_exchange_rate", attrName="customerEstimatedExchangeRate", label="预估汇率", isQuery=false),
		@Column(name="customer_estimated_price", attrName="customerEstimatedPrice", label="预估价格", comment="预估价格（RMB）", isQuery=false),
		@Column(name="customer_receivable_id", attrName="customerReceivableId", label="还汇应收单", isQuery=false),
		@Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false),
		@Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
		@Column(name="remarks", attrName="remarks", label="备注信息", isQuery=false),
		@Column(name="lading_bill_id", attrName="ladingBillId", label="提单ID"),
		@Column(name="tentative_exchange_rate", attrName="tentativeExchangeRate", label="暂定汇率"),
		@Column(name="investor_interest_ratio", attrName="investorInterestRatio", label="正常资方利息比例"),
		@Column(name="customer_interest_ratio", attrName="customerInterestRatio", label="正常客户利息比例"),
		@Column(name="investor_year_days", attrName="investorYearDays", label="资方年天数"),
		@Column(name="car_id", attrName="carId", label="车辆"),
		@Column(name="investor_negotiated_plan", attrName="investorNegotiatedPlan", label="资方押汇方案"),
		@Column(name="prepayment_id", attrName="prepaymentId", label="预付款ID"),
		@Column(name="advances_received_id", attrName="advancesReceivedId", label="预收款ID"),
		@Column(name="negotiated_amount_rmb", attrName="negotiatedAmountRmb", label="押汇金额（人民币）"),
		@Column(name="investor_negotiated_yq_interest", attrName="investorNegotiatedYqInterest", label="资方押汇延期利息"),
		@Column(name="customer_negotiated_yq_interest", attrName="customerNegotiatedYqInterest", label="客户押汇延期利息"),
		@Column(name="ar_id", attrName="arId", label="应收单ID"),
		@Column(name="ap_id", attrName="apId", label="应付单ID"),
		@Column(name="customer_actual_days", attrName="customerActualDays", label="发生天数"),
		@Column(name="investor_actual_days", attrName="investorActualDays", label="发生天数"),
		@Column(name="inter_ar_id", attrName="interArId", label="国际运输保险费应收单ID"),
		@Column(name="inter_ap_id", attrName="interApId", label="国际运输保险费应付单ID"),
		@Column(name="row_number", attrName="rowNumber", label="服务订单行ID"),
	}, joinTable={
		@JoinTable(type= JoinTable.Type.LEFT_JOIN, entity= Customer.class, attrName="customer", alias="c",
				on="c.customer_id = a.customer_id", columns={
				@Column(name="customer_id", label="客户编码", isPK=true),
				@Column(name="customer_name", label="客户名称", isQuery=false),
		}),
		@JoinTable(type= JoinTable.Type.LEFT_JOIN, entity= Supplier.class, attrName="investor", alias="e",
				on="e.supplier_id = a.investor_id", columns={
				@Column(name="supplier_id", label="国内资方编码", isPK=true),
				@Column(name="supplier_name", label="国内资方名称", isQuery=false),
		}),
		@JoinTable(type = JoinTable.Type.LEFT_JOIN, entity = ServiceOrder.class, attrName = "serviceOrder", alias = "s",
				on = "s.service_order_id = a.service_order_code",
				columns = {
				@Column(name = "service_order_id", label = "服务订单ID", isPK = true),
				@Column(name = "service_order_code", label = "服务订单编号"),
		}),
		@JoinTable(type = JoinTable.Type.LEFT_JOIN, entity = LetterCredit.class, attrName = "letterCredit", alias = "l",
				on = "l.letter_credit_id = a.letter_credit_code",
				columns = {
						@Column(name = "letter_credit_id", label = "信用证ID", isPK = true),
						@Column(name = "letter_credit_code", label = "信用证编号"),
				}),
		@JoinTable(type= JoinTable.Type.LEFT_JOIN, entity= Tcar.class, attrName="tcar", alias="t",
				on="t.car_id = a.car_id", columns={
				@Column(name="car_id", label="车辆编码", isPK=true),
				@Column(name="car_name", label="车辆名称", isQuery=false),
		}),
	}, orderBy="a.update_date DESC"
)
public class BillNegotiated extends DataEntity<BillNegotiated> {
	
	private static final long serialVersionUID = 1L;
	private String billNegotiatedId;		// 到单押汇ID
	private String frameNumber;		// 车架号
	private String brand;		// 品牌
	private String area;		// 版型
	private String model;		// 车型
	private Double unitPrice;		// 价格（原币种）
	private String currency;		// 币种
	private String status1;		// 状态
	private String billNegotiatedCode;		// 编号
	private String letterCreditCode;		// 信用证
	private String serviceOrderCode;		// 服务订单
	private String entrustAgreement;		// 委托协议
	private String customerId;		// 客户
	private String investorId;		// 资方
	private String foreignTradeContractNumber;		// 外贸合同号
	private String marginPurchaseExchangeRate;		// 保证金购汇汇率
	private String negotiatedRatio;		// 押汇比例
	private Double negotiatedAmount;		// 押汇金额
	private Date startDate;		// 开始日期
	private Date investorEndDate;		// 资方结束日期
	private Date customerEndDate;		// 客户结束日期
	private Double amount;		// 资方押汇期应还款金额
	private String n1Flag;		// 是否N+1
	private Double investorNegotiatedInterest;		// 资方押汇利息
	private Double customerNegotiatedInterest;		// 客户押汇利息
	private Double investorTotalPrincipalInterest;		// 资方本息合计
	private Double customerTotalPrincipalInterest;		// 客户本息合计
	private Date investorActualRepaymentDate;		// 实际还汇日期
	private String investorRealExchangeRate;		// 实际汇率
	private String investorEstimatedExchangeRate;		// 预估汇率
	private Double investorEstimatedPrice;		// 预估价格（RMB）
	private String investorPayableId;		// 还汇应付单
	private Date customerActualRepaymentDate;		// 实际还汇日期
	private String customerRealExchangeRate;		// 实际汇率
	private String customerEstimatedExchangeRate;		// 预估汇率
	private Double customerEstimatedPrice;		// 预估价格（RMB）
	private String customerReceivableId;		// 还汇应收单
	private List<BillNegotiatedDetail> billNegotiatedDetailList = ListUtils.newArrayList();		// 子表列表
	private List<BillNegotiatedDetail> billNegotiatedDetailList1 = ListUtils.newArrayList();		// 资方子列表
	private List<BillNegotiatedDetail> billNegotiatedDetailList2 = ListUtils.newArrayList();		// 客户子列表
	private List<ServiceOrderDetail> billNegotiatedDetailList3 = ListUtils.newArrayList();		// 车辆信息列表
	private Customer customer;
	private Supplier investor;
	private String ladingBillId;
	private String tentativeExchangeRate;		// 暂定汇率
	private String investorInterestRatio;
	private String customerInterestRatio;
	private Long investorYearDays;
	private Double customerAmount;		// 客户押汇期应还款金额
	private ServiceOrder serviceOrder;        // 服务订单
	private String carId;
	private Tcar tcar;
	private String investorNegotiatedPlan;
	private String prepaymentId;
	private String advancesReceivedId;
	private Double negotiatedAmountRmb;
	private Double investorNegotiatedYqInterest;
	private Double customerNegotiatedYqInterest;
	private String arId;
	private String apId;
	private Long investorActualDays;
	private Long customerActualDays;
	private String interArId;
	private String interApId;
	private LetterCredit letterCredit;
	private String supplieryearrate;
	private String customeryearrate;


	public Long getRowNumber() {
		return rowNumber;
	}

	public void setRowNumber(Long rowNumber) {
		this.rowNumber = rowNumber;
	}

	private Long rowNumber;		// 服务订单行号
	private List<RelatedRecord> relatedRecordList = ListUtils.newArrayList();		// 子表列表

	public List<RelatedRecord> getRelatedRecordList() {
		return relatedRecordList;
	}

	public void setRelatedRecordList(List<RelatedRecord> relatedRecordList) {
		this.relatedRecordList = relatedRecordList;
	}

	public LetterCredit getLetterCredit() {
		return letterCredit;
	}

	public void setLetterCredit(LetterCredit letterCredit) {
		this.letterCredit = letterCredit;
	}

	public String getInterArId() {
		return interArId;
	}

	public void setInterArId(String interArId) {
		this.interArId = interArId;
	}

	public String getInterApId() {
		return interApId;
	}

	public void setInterApId(String interApId) {
		this.interApId = interApId;
	}

	public Long getInvestorActualDays() {
		return investorActualDays;
	}

	public void setInvestorActualDays(Long investorActualDays) {
		this.investorActualDays = investorActualDays;
	}

	public Long getCustomerActualDays() {
		return customerActualDays;
	}

	public void setCustomerActualDays(Long customerActualDays) {
		this.customerActualDays = customerActualDays;
	}

	public String getArId() {
		return arId;
	}

	public void setArId(String arId) {
		this.arId = arId;
	}

	public String getApId() {
		return apId;
	}

	public void setApId(String apId) {
		this.apId = apId;
	}

	public String getInvestorNegotiatedPlan() {
		return investorNegotiatedPlan;
	}

	public void setInvestorNegotiatedPlan(String investorNegotiatedPlan) {
		this.investorNegotiatedPlan = investorNegotiatedPlan;
	}

	public String getPrepaymentId() {
		return prepaymentId;
	}

	public void setPrepaymentId(String prepaymentId) {
		this.prepaymentId = prepaymentId;
	}

	public String getAdvancesReceivedId() {
		return advancesReceivedId;
	}

	public void setAdvancesReceivedId(String advancesReceivedId) {
		this.advancesReceivedId = advancesReceivedId;
	}

	public Double getNegotiatedAmountRmb() {
		return negotiatedAmountRmb;
	}

	public void setNegotiatedAmountRmb(Double negotiatedAmountRmb) {
		this.negotiatedAmountRmb = negotiatedAmountRmb;
	}

	public Double getInvestorNegotiatedYqInterest() {
		return investorNegotiatedYqInterest;
	}

	public void setInvestorNegotiatedYqInterest(Double investorNegotiatedYqInterest) {
		this.investorNegotiatedYqInterest = investorNegotiatedYqInterest;
	}

	public Double getCustomerNegotiatedYqInterest() {
		return customerNegotiatedYqInterest;
	}

	public void setCustomerNegotiatedYqInterest(Double customerNegotiatedYqInterest) {
		this.customerNegotiatedYqInterest = customerNegotiatedYqInterest;
	}

	public Tcar getTcar() {
		return tcar;
	}

	public void setTcar(Tcar tcar) {
		this.tcar = tcar;
	}

	public String getCarId() {
		return carId;
	}

	public void setCarId(String carId) {
		this.carId = carId;
	}

	public ServiceOrder getServiceOrder() {
		return serviceOrder;
	}

	public void setServiceOrder(ServiceOrder serviceOrder) {
		this.serviceOrder = serviceOrder;
	}

	public Double getCustomerAmount() {
		return customerAmount;
	}

	public void setCustomerAmount(Double customerAmount) {
		this.customerAmount = customerAmount;
	}

	public Long getInvestorYearDays() {
		return investorYearDays;
	}

	public void setInvestorYearDays(Long investorYearDays) {
		this.investorYearDays = investorYearDays;
	}

	public String getInvestorInterestRatio() {
		return investorInterestRatio;
	}

	public void setInvestorInterestRatio(String investorInterestRatio) {
		this.investorInterestRatio = investorInterestRatio;
	}

	public String getCustomerInterestRatio() {
		return customerInterestRatio;
	}

	public void setCustomerInterestRatio(String customerInterestRatio) {
		this.customerInterestRatio = customerInterestRatio;
	}

	public String getTentativeExchangeRate() {
		return tentativeExchangeRate;
	}

	public void setTentativeExchangeRate(String tentativeExchangeRate) {
		this.tentativeExchangeRate = tentativeExchangeRate;
	}

	public String getLadingBillId() {
		return ladingBillId;
	}

	public void setLadingBillId(String ladingBillId) {
		this.ladingBillId = ladingBillId;
	}

	public List<BillNegotiatedDetail> getBillNegotiatedDetailList1() {
		return billNegotiatedDetailList1;
	}

	public void setBillNegotiatedDetailList1(List<BillNegotiatedDetail> billNegotiatedDetailList1) {
		this.billNegotiatedDetailList1 = billNegotiatedDetailList1;
	}

	public List<BillNegotiatedDetail> getBillNegotiatedDetailList2() {
		return billNegotiatedDetailList2;
	}

	public void setBillNegotiatedDetailList2(List<BillNegotiatedDetail> billNegotiatedDetailList2) {
		this.billNegotiatedDetailList2 = billNegotiatedDetailList2;
	}

	public List<ServiceOrderDetail> getBillNegotiatedDetailList3() {
		return billNegotiatedDetailList3;
	}

	public void setBillNegotiatedDetailList3(List<ServiceOrderDetail> billNegotiatedDetailList3) {
		this.billNegotiatedDetailList3 = billNegotiatedDetailList3;
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public Supplier getInvestor() {
		return investor;
	}

	public void setInvestor(Supplier investor) {
		this.investor = investor;
	}

	public BillNegotiated() {
		this(null);
	}

	public BillNegotiated(String id){
		super(id);
	}
	
	public String getBillNegotiatedId() {
		return billNegotiatedId;
	}

	public void setBillNegotiatedId(String billNegotiatedId) {
		this.billNegotiatedId = billNegotiatedId;
	}
	
	@Length(min=0, max=100, message="车架号长度不能超过 100 个字符")
	public String getFrameNumber() {
		return frameNumber;
	}

	public void setFrameNumber(String frameNumber) {
		this.frameNumber = frameNumber;
	}
	
	@Length(min=0, max=2, message="品牌长度不能超过 2 个字符")
	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}
	
	@Length(min=0, max=64, message="版型长度不能超过 64 个字符")
	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area;
	}
	
	@Length(min=0, max=100, message="车型长度不能超过 100 个字符")
	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}
	
	public Double getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(Double unitPrice) {
		this.unitPrice = unitPrice;
	}
	
	@Length(min=0, max=2, message="币种长度不能超过 2 个字符")
	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}
	
	@Length(min=0, max=1, message="状态长度不能超过 1 个字符")
	public String getStatus1() {
		return status1;
	}

	public void setStatus1(String status1) {
		this.status1 = status1;
	}
	
	@Length(min=0, max=100, message="编号长度不能超过 100 个字符")
	public String getBillNegotiatedCode() {
		return billNegotiatedCode;
	}

	public void setBillNegotiatedCode(String billNegotiatedCode) {
		this.billNegotiatedCode = billNegotiatedCode;
	}
	
	@Length(min=0, max=100, message="信用证长度不能超过 100 个字符")
	public String getLetterCreditCode() {
		return letterCreditCode;
	}

	public void setLetterCreditCode(String letterCreditCode) {
		this.letterCreditCode = letterCreditCode;
	}
	
	@Length(min=0, max=100, message="服务订单长度不能超过 100 个字符")
	public String getServiceOrderCode() {
		return serviceOrderCode;
	}

	public void setServiceOrderCode(String serviceOrderCode) {
		this.serviceOrderCode = serviceOrderCode;
	}
	
	@Length(min=0, max=100, message="委托协议长度不能超过 100 个字符")
	public String getEntrustAgreement() {
		return entrustAgreement;
	}

	public void setEntrustAgreement(String entrustAgreement) {
		this.entrustAgreement = entrustAgreement;
	}
	
	@Length(min=0, max=64, message="客户长度不能超过 64 个字符")
	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}
	
	@Length(min=0, max=64, message="资方长度不能超过 64 个字符")
	public String getInvestorId() {
		return investorId;
	}

	public void setInvestorId(String investorId) {
		this.investorId = investorId;
	}
	
	@Length(min=0, max=100, message="外贸合同号长度不能超过 100 个字符")
	public String getForeignTradeContractNumber() {
		return foreignTradeContractNumber;
	}

	public void setForeignTradeContractNumber(String foreignTradeContractNumber) {
		this.foreignTradeContractNumber = foreignTradeContractNumber;
	}
	
	@Length(min=0, max=10, message="保证金购汇汇率长度不能超过 10 个字符")
	public String getMarginPurchaseExchangeRate() {
		return marginPurchaseExchangeRate;
	}

	public void setMarginPurchaseExchangeRate(String marginPurchaseExchangeRate) {
		this.marginPurchaseExchangeRate = marginPurchaseExchangeRate;
	}
	
	@Length(min=0, max=10, message="押汇比例长度不能超过 10 个字符")
	public String getNegotiatedRatio() {
		return negotiatedRatio;
	}

	public void setNegotiatedRatio(String negotiatedRatio) {
		this.negotiatedRatio = negotiatedRatio;
	}
	
	public Double getNegotiatedAmount() {
		return negotiatedAmount;
	}

	public void setNegotiatedAmount(Double negotiatedAmount) {
		this.negotiatedAmount = negotiatedAmount;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getInvestorEndDate() {
		return investorEndDate;
	}

	public void setInvestorEndDate(Date investorEndDate) {
		this.investorEndDate = investorEndDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCustomerEndDate() {
		return customerEndDate;
	}

	public void setCustomerEndDate(Date customerEndDate) {
		this.customerEndDate = customerEndDate;
	}
	
	public Double getAmount() {
		return amount;
	}

	public void setAmount(Double amount) {
		this.amount = amount;
	}
	
	@Length(min=0, max=1, message="是否N+1长度不能超过 1 个字符")
	public String getN1Flag() {
		return n1Flag;
	}

	public void setN1Flag(String n1Flag) {
		this.n1Flag = n1Flag;
	}
	
	public Double getInvestorNegotiatedInterest() {
		return investorNegotiatedInterest;
	}

	public void setInvestorNegotiatedInterest(Double investorNegotiatedInterest) {
		this.investorNegotiatedInterest = investorNegotiatedInterest;
	}
	
	public Double getCustomerNegotiatedInterest() {
		return customerNegotiatedInterest;
	}

	public void setCustomerNegotiatedInterest(Double customerNegotiatedInterest) {
		this.customerNegotiatedInterest = customerNegotiatedInterest;
	}
	
	public Double getInvestorTotalPrincipalInterest() {
		return investorTotalPrincipalInterest;
	}

	public void setInvestorTotalPrincipalInterest(Double investorTotalPrincipalInterest) {
		this.investorTotalPrincipalInterest = investorTotalPrincipalInterest;
	}
	
	public Double getCustomerTotalPrincipalInterest() {
		return customerTotalPrincipalInterest;
	}

	public void setCustomerTotalPrincipalInterest(Double customerTotalPrincipalInterest) {
		this.customerTotalPrincipalInterest = customerTotalPrincipalInterest;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getInvestorActualRepaymentDate() {
		return investorActualRepaymentDate;
	}

	public void setInvestorActualRepaymentDate(Date investorActualRepaymentDate) {
		this.investorActualRepaymentDate = investorActualRepaymentDate;
	}
	
	@Length(min=0, max=10, message="实际汇率长度不能超过 10 个字符")
	public String getInvestorRealExchangeRate() {
		return investorRealExchangeRate;
	}

	public void setInvestorRealExchangeRate(String investorRealExchangeRate) {
		this.investorRealExchangeRate = investorRealExchangeRate;
	}
	
	@Length(min=0, max=10, message="预估汇率长度不能超过 10 个字符")
	public String getInvestorEstimatedExchangeRate() {
		return investorEstimatedExchangeRate;
	}

	public void setInvestorEstimatedExchangeRate(String investorEstimatedExchangeRate) {
		this.investorEstimatedExchangeRate = investorEstimatedExchangeRate;
	}
	
	public Double getInvestorEstimatedPrice() {
		return investorEstimatedPrice;
	}

	public void setInvestorEstimatedPrice(Double investorEstimatedPrice) {
		this.investorEstimatedPrice = investorEstimatedPrice;
	}
	
	@Length(min=0, max=64, message="还汇应付单长度不能超过 64 个字符")
	public String getInvestorPayableId() {
		return investorPayableId;
	}

	public void setInvestorPayableId(String investorPayableId) {
		this.investorPayableId = investorPayableId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCustomerActualRepaymentDate() {
		return customerActualRepaymentDate;
	}

	public void setCustomerActualRepaymentDate(Date customerActualRepaymentDate) {
		this.customerActualRepaymentDate = customerActualRepaymentDate;
	}
	
//	@Length(min=0, max=10, message="实际汇率长度不能超过 10 个字符")
	public String getCustomerRealExchangeRate() {
		return customerRealExchangeRate;
	}

	public void setCustomerRealExchangeRate(String customerRealExchangeRate) {
		this.customerRealExchangeRate = customerRealExchangeRate;
	}
	
	@Length(min=0, max=10, message="预估汇率长度不能超过 10 个字符")
	public String getCustomerEstimatedExchangeRate() {
		return customerEstimatedExchangeRate;
	}

	public void setCustomerEstimatedExchangeRate(String customerEstimatedExchangeRate) {
		this.customerEstimatedExchangeRate = customerEstimatedExchangeRate;
	}
	
	public Double getCustomerEstimatedPrice() {
		return customerEstimatedPrice;
	}

	public void setCustomerEstimatedPrice(Double customerEstimatedPrice) {
		this.customerEstimatedPrice = customerEstimatedPrice;
	}
	
	@Length(min=0, max=64, message="还汇应收单长度不能超过 64 个字符")
	public String getCustomerReceivableId() {
		return customerReceivableId;
	}

	public void setCustomerReceivableId(String customerReceivableId) {
		this.customerReceivableId = customerReceivableId;
	}
	
	public Date getStartDate_gte() {
		return sqlMap.getWhere().getValue("start_date", QueryType.GTE);
	}

	public void setStartDate_gte(Date startDate) {
		sqlMap.getWhere().and("start_date", QueryType.GTE, startDate);
	}
	
	public Date getStartDate_lte() {
		return sqlMap.getWhere().getValue("start_date", QueryType.LTE);
	}

	public void setStartDate_lte(Date startDate) {
		sqlMap.getWhere().and("start_date", QueryType.LTE, startDate);
	}
	
	public Date getInvestorEndDate_gte() {
		return sqlMap.getWhere().getValue("investor_end_date", QueryType.GTE);
	}

	public void setInvestorEndDate_gte(Date investorEndDate) {
		sqlMap.getWhere().and("investor_end_date", QueryType.GTE, investorEndDate);
	}
	
	public Date getInvestorEndDate_lte() {
		return sqlMap.getWhere().getValue("investor_end_date", QueryType.LTE);
	}

	public void setInvestorEndDate_lte(Date investorEndDate) {
		sqlMap.getWhere().and("investor_end_date", QueryType.LTE, investorEndDate);
	}
	
	public Date getCustomerEndDate_gte() {
		return sqlMap.getWhere().getValue("customer_end_date", QueryType.GTE);
	}

	public void setCustomerEndDate_gte(Date customerEndDate) {
		sqlMap.getWhere().and("customer_end_date", QueryType.GTE, customerEndDate);
	}
	
	public Date getCustomerEndDate_lte() {
		return sqlMap.getWhere().getValue("customer_end_date", QueryType.LTE);
	}

	public void setCustomerEndDate_lte(Date customerEndDate) {
		sqlMap.getWhere().and("customer_end_date", QueryType.LTE, customerEndDate);
	}
	
	public Date getInvestorActualRepaymentDate_gte() {
		return sqlMap.getWhere().getValue("investor_actual_repayment_date", QueryType.GTE);
	}

	public void setInvestorActualRepaymentDate_gte(Date investorActualRepaymentDate) {
		sqlMap.getWhere().and("investor_actual_repayment_date", QueryType.GTE, investorActualRepaymentDate);
	}
	
	public Date getInvestorActualRepaymentDate_lte() {
		return sqlMap.getWhere().getValue("investor_actual_repayment_date", QueryType.LTE);
	}

	public void setInvestorActualRepaymentDate_lte(Date investorActualRepaymentDate) {
		sqlMap.getWhere().and("investor_actual_repayment_date", QueryType.LTE, investorActualRepaymentDate);
	}
	
	public Date getCustomerActualRepaymentDate_gte() {
		return sqlMap.getWhere().getValue("customer_actual_repayment_date", QueryType.GTE);
	}

	public void setCustomerActualRepaymentDate_gte(Date customerActualRepaymentDate) {
		sqlMap.getWhere().and("customer_actual_repayment_date", QueryType.GTE, customerActualRepaymentDate);
	}
	
	public Date getCustomerActualRepaymentDate_lte() {
		return sqlMap.getWhere().getValue("customer_actual_repayment_date", QueryType.LTE);
	}

	public void setCustomerActualRepaymentDate_lte(Date customerActualRepaymentDate) {
		sqlMap.getWhere().and("customer_actual_repayment_date", QueryType.LTE, customerActualRepaymentDate);
	}
	
	public Date getCreateDate_gte() {
		return sqlMap.getWhere().getValue("create_date", QueryType.GTE);
	}

	public void setCreateDate_gte(Date createDate) {
		sqlMap.getWhere().and("create_date", QueryType.GTE, createDate);
	}
	
	public Date getCreateDate_lte() {
		return sqlMap.getWhere().getValue("create_date", QueryType.LTE);
	}

	public void setCreateDate_lte(Date createDate) {
		sqlMap.getWhere().and("create_date", QueryType.LTE, createDate);
	}
	
	public List<BillNegotiatedDetail> getBillNegotiatedDetailList() {
		return billNegotiatedDetailList;
	}

	public void setBillNegotiatedDetailList(List<BillNegotiatedDetail> billNegotiatedDetailList) {
		this.billNegotiatedDetailList = billNegotiatedDetailList;
	}

    public String getSupplieryearrate() {
        return supplieryearrate;
    }

    public void setSupplieryearrate(String supplieryearrate) {
        this.supplieryearrate = supplieryearrate;
    }

    public String getCustomeryearrate() {
        return customeryearrate;
    }

    public void setCustomeryearrate(String customeryearrate) {
        this.customeryearrate = customeryearrate;
    }
}